package com.chenwc.util.translate.youdao.enumeration;

/**
 * 错误代码
 *
 * @author chenwc
 * @package com.chenwc.util.translate.youdao.enumeration
 * @project wso2-sinicization
 * @date 2024/5/25
 */
public enum ErrorCode {
    C_0(0, "成功"),
    C_101(101, "缺少必填的参数,首先确保必填参数齐全，然后确认参数书写是否正确。"),
    C_102(102, "不支持的语言类型"),
    C_103(103, "翻译文本过长"),
    C_104(104, "不支持的API类型"),
    C_105(105, "不支持的签名类型"),
    C_106(106, "不支持的响应类型"),
    C_107(107, "不支持的传输加密类型"),
    C_108(108, "应用ID无效，注册账号，登录后台创建应用并完成绑定，可获得应用ID和应用密钥等信息"),
    C_109(109, "batchLog格式不正确"),
    C_110(110, "无相关服务的有效应用,应用没有绑定服务应用，可以新建服务应用。注：某些服务的翻译结果发音需要tts服务，需要在控制台创建语音合成服务绑定应用后方能使用。"),
    C_111(111, "开发者账号无效"),
    C_112(112, "请求服务无效"),
    C_113(113, "q不能为空"),
    C_114(114, "不支持的图片传输方式"),
    C_116(116, "strict字段取值无效，请参考文档填写正确参数值"),
    C_201(201, "解密失败，可能为DES,BASE64,URLDecode的错误"),
    C_202(202, "签名检验失败,如果确认应用ID和应用密钥的正确性，仍返回202，一般是编码问题。请确保翻译文本 q 为UTF-8编码."),
    C_203(203, "访问IP地址不在可访问IP列表"),
    C_205(205, "请求的接口与应用的平台类型不一致，确保接入方式（Android SDK、IOS SDK、API）与创建的应用平台类型一致。如有疑问请参考入门指南"),
    C_206(206, "因为时间戳无效导致签名校验失败"),
    C_207(207, "重放请求"),
    C_301(301, "辞典查询失败"),
    C_302(302, "翻译查询失败"),
    C_303(303, "服务端的其它异常"),
    C_304(304, "会话闲置太久超时"),
    C_308(308, "rejectFallback参数错误"),
    C_309(309, "domain参数错误"),
    C_310(310, "未开通领域翻译服务"),
    C_401(401, "账户已经欠费，请进行账户充值"),
    C_402(402, "offlinesdk不可用"),
    C_411(411, "访问频率受限,请稍后访问"),
    C_412(412, "长请求过于频繁，请稍后访问"),
    C_1001(1001, "无效的OCR类型"),
    C_1002(1002, "不支持的OCR image类型"),
    C_1003(1003, "不支持的OCR Language类型"),
    C_1004(1004, "识别图片过大"),
    C_1201(1201, "图片base64解密失败"),
    C_1301(1301, "OCR段落识别失败"),
    C_1411(1411, "访问频率受限"),
    C_1412(1412, "超过最大识别字节数"),
    C_2003(2003, "不支持的语言识别Language类型"),
    C_2004(2004, "合成字符过长"),
    C_2005(2005, "不支持的音频文件类型"),
    C_2006(2006, "不支持的发音类型"),
    C_2201(2201, "解密失败"),
    C_2301(2301, "服务的异常"),
    C_2411(2411, "访问频率受限,请稍后访问"),
    C_2412(2412, "超过最大请求字符数"),
    C_3001(3001, "不支持的语音格式"),
    C_3002(3002, "不支持的语音采样率"),
    C_3003(3003, "不支持的语音声道"),
    C_3004(3004, "不支持的语音上传类型"),
    C_3005(3005, "不支持的语言类型"),
    C_3006(3006, "不支持的识别类型"),
    C_3007(3007, "识别音频文件过大"),
    C_3008(3008, "识别音频时长过长"),
    C_3009(3009, "不支持的音频文件类型"),
    C_3010(3010, "不支持的发音类型"),
    C_3201(3201, "解密失败"),
    C_3301(3301, "语音识别失败"),
    C_3302(3302, "语音翻译失败"),
    C_3303(3303, "服务的异常"),
    C_3411(3411, "访问频率受限,请稍后访问"),
    C_3412(3412, "超过最大请求字符数"),
    C_4001(4001, "不支持的语音识别格式"),
    C_4002(4002, "不支持的语音识别采样率"),
    C_4003(4003, "不支持的语音识别声道"),
    C_4004(4004, "不支持的语音上传类型"),
    C_4005(4005, "不支持的语言类型"),
    C_4006(4006, "识别音频文件过大"),
    C_4007(4007, "识别音频时长过长"),
    C_4201(4201, "解密失败"),
    C_4301(4301, "语音识别失败"),
    C_4303(4303, "服务的异常"),
    C_4411(4411, "访问频率受限,请稍后访问"),
    C_4412(4412, "超过最大请求时长"),
    C_5001(5001, "无效的OCR类型"),
    C_5002(5002, "不支持的OCR image类型"),
    C_5003(5003, "不支持的语言类型"),
    C_5004(5004, "识别图片过大"),
    C_5005(5005, "不支持的图片类型"),
    C_5006(5006, "文件为空"),
    C_5201(5201, "解密错误，图片base64解密失败"),
    C_5301(5301, "OCR段落识别失败"),
    C_5411(5411, "访问频率受限"),
    C_5412(5412, "超过最大识别流量"),
    C_9001(9001, "不支持的语音格式"),
    C_9002(9002, "不支持的语音采样率"),
    C_9003(9003, "不支持的语音声道"),
    C_9004(9004, "不支持的语音上传类型"),
    C_9005(9005, "不支持的语音识别 Language类型"),
    C_9301(9301, "ASR识别失败"),
    C_9303(9303, "服务器内部错误"),
    C_9411(9411, "访问频率受限（超过最大调用次数）"),
    C_9412(9412, "超过最大处理语音长度"),
    C_10001(10001, "无效的OCR类型"),
    C_10002(10002, "不支持的OCR image类型"),
    C_10004(10004, "识别图片过大"),
    C_10201(10201, "图片base64解密失败"),
    C_10301(10301, "OCR段落识别失败"),
    C_10411(10411, "访问频率受限"),
    C_10412(10412, "超过最大识别流量"),
    C_11001(11001, "不支持的语音识别格式"),
    C_11002(11002, "不支持的语音识别采样率"),
    C_11003(11003, "不支持的语音识别声道"),
    C_11004(11004, "不支持的语音上传类型"),
    C_11005(11005, "不支持的语言类型"),
    C_11006(11006, "识别音频文件过大"),
    C_11007(11007, "识别音频时长过长，最大支持30s"),
    C_11201(11201, "解密失败"),
    C_11301(11301, "语音识别失败"),
    C_11303(11303, "服务的异常"),
    C_11411(11411, "访问频率受限,请稍后访问"),
    C_11412(11412, "超过最大请求时长"),
    C_12001(12001, "图片尺寸过大"),
    C_12002(12002, "图片base64解密失败"),
    C_12003(12003, "引擎服务器返回错误"),
    C_12004(12004, "图片为空"),
    C_12005(12005, "不支持的识别图片类型"),
    C_12006(12006, "图片无匹配结果"),
    C_13001(13001, "不支持的角度类型"),
    C_13002(13002, "不支持的文件类型"),
    C_13003(13003, "表格识别图片过大"),
    C_13004(13004, "文件为空"),
    C_13301(13301, "表格识别失败"),
    C_15001(15001, "需要图片"),
    C_15002(15002, "图片过大（1M）"),
    C_15003(15003, "服务调用失败"),
    C_17001(17001, "需要图片"),
    C_17002(17002, "图片过大（1M）"),
    C_17003(17003, "识别类型未找到"),
    C_17004(17004, "不支持的识别类型"),
    C_17005(17005, "服务调用失败");

    private int code;

    private String message;

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 根据错误代码获取代码的描述
     *
     * @param code 错误代码
     * @return 描述
     */
    public static String getErrorCodeMessage(int code) {
        for (ErrorCode errorCode : ErrorCode.values()) {
            if (errorCode.getCode() == code) {
                return errorCode.getMessage();
            }
        }
        return "未知异常";
    }
}
